Confirmaciones de asistencia previos

Podemos configurar el archivo past.js en la carpeta pages/my-rsvps casi igual a como lo hicimos para las confirmaciones de asistencia futuras. Primero, necesitaremos importar las utilidades de ayuda.

import { useState } from "react"; import { gql, useQuery } from "@apollo/client"; import { ConnectButton } from "@rainbow-me/rainbowkit"; import { useAccount } from "wagmi"; import EventCard from "../../components/EventCard";

A continuación, podemos definir nuestra consulta para obtener todas las confirmaciones de asistencia del usuario.

const MY_PAST_RSVPS = gql` query Account($id: String) { account(id: $id) { id rsvps { event { id name eventTimestamp imageURL } } } } `;

Ahora podemos configurar la función MyPastRSVPs tal como lo hicimos para las confirmaciones futuras, pero aquí solo mostraremos eventos pasados verificando si eventTimestamp es menor que currentTimestamp.

export default function MyPastRSVPs() { const { data: account } = useAccount(); const id = account ? account.address.toLowerCase() : ""; const [currentTimestamp, setEventTimestamp] = useState(new Date().getTime()); const { loading, error, data } = useQuery(MY_PAST_RSVPS, { variables: { id }, }); if (loading) return ( <Dashboard page="rsvps" isUpcoming={false}> <p>Loading...</p> </Dashboard> ); if (error) return ( <Dashboard page="rsvps" isUpcoming={false}> <p>`Error! ${error.message}`</p> </Dashboard> ); if (data) console.log(data); return ( <Dashboard page="rsvps" isUpcoming={false}> {account ? ( <div> {data && !data.account && <p>No past RSVPs found</p>} {data && data.account && ( <ul role="list" className="grid grid-cols-2 gap-x-4 gap-y-8 sm:grid-cols-3 sm:gap-x-6 lg:grid-cols-4 xl:gap-x-8" > {data.account.rsvps.map(function (rsvp) { if (rsvp.event.eventTimestamp < currentTimestamp) { return ( <li key={rsvp.event.id}> <EventCard id={rsvp.event.id} name={rsvp.event.name} eventTimestamp={rsvp.event.eventTimestamp} imageURL={rsvp.event.imageURL} /> </li> ); } })} </ul> )} </div> ) : ( <div className="flex flex-col items-center py-8"> <p className="mb-4">Please connect your wallet to view your rsvps</p> <ConnectButton /> </div> )} </Dashboard> ); }

Escritoras: Sarah Schwartz, Traductoras: Dami, Brenda, Caro Meneses